Aligned with the Sustainable Development Goals (SDGs), particularly SDG 1: No Poverty, this report examines the distribution of social assistance in Bandung City in 2022. As one of the major urban centers in Indonesia, Bandung faces significant challenges in addressing poverty. One common governmental strategy to tackle this issue is through the provision of social assistance (Bansos).
However, it raises questions about how the government distributes this social assistance and does the Bandung city government act based on data? To answer these questions, we examine the relevance of the dataset mapping poverty distribution in Bandung city with the distribution map of social assistance carried out by the Bandung city government.
This analysis is crucial for understanding the effectiveness of the social assistance programs implemented by the Bandung government in identifying and reaching areas (districts/subdistricts) that require additional attention and resources.
So the focus of this report is twofold: examining the poverty distribution map in Bandung City and assessing how the Bandung city government distributes social assistance. By exploring and analyzing data through descriptive statistics, data grouping, and visualization, this report aims to provide a comprehensive overview of social assistance distribution and poverty distribution in Bandung City.
Understanding these dynamics is essential for policymakers and relevant agencies to design and implement more effective and equitable social assistance policies. The findings are expected to guide targeted interventions, ensuring that aid reaches those most in need and contributes to the broader goal of poverty alleviation in Bandung City, in line with SDG 1: No Poverty.
==================================================================================================================
Our dataset consists of two datasets obtained separately from the Bandung city government website.
# Dataset 1
df_sebaran <- read.csv("tahun-2022---data-sebaran-kemiskinan-di-kota-bandung.csv")
# Dataset 2
df_bantuan <- read.csv("tahun-2022---data-sebaran-kpm-bansos.csv")
kable(str(df_sebaran))
## 'data.frame': 151 obs. of 6 variables:
## $ Kode.Kecamatan : chr "32.73.05" "32.73.05" "32.73.05" "32.73.05" ...
## $ Kecamatan : chr "Andir" "Andir" "Andir" "Andir" ...
## $ Kode.Kelurahan : chr "32.73.05.1006" "32.73.05.1003" "32.73.05.1002" "32.73.05.1005" ...
## $ Kelurahan : chr "Campaka" "Ciroyom" "Dungus Cariang" "Garuda" ...
## $ Jumlah.Keluarga.Miskin: int 2553 3443 3125 1666 1537 2948 1683 1127 2065 2101 ...
## $ Jumlah.Individu : int 7328 10205 8710 4812 3875 8388 4248 2997 5469 5779 ...
kable(str(df_bantuan))
## 'data.frame': 90 obs. of 4 variables:
## $ Kode.Kecamatan: chr "32.73.05" "32.73.05" "32.73.05" "32.73.20" ...
## $ Kecamatan : chr "Andir" "Andir" "Andir" "Antapani" ...
## $ Jenis.Bansos : chr "BPNT" "PKH" "PBI-JK" "BPNT" ...
## $ Jumlah.KPM : int 4427 1913 17878 1691 868 7592 2452 1205 10743 2188 ...
Dataset 1
kable(df_sebaran)
| Kode.Kecamatan | Kecamatan | Kode.Kelurahan | Kelurahan | Jumlah.Keluarga.Miskin | Jumlah.Individu |
|---|---|---|---|---|---|
| 32.73.05 | Andir | 32.73.05.1006 | Campaka | 2553 | 7328 |
| 32.73.05 | Andir | 32.73.05.1003 | Ciroyom | 3443 | 10205 |
| 32.73.05 | Andir | 32.73.05.1002 | Dungus Cariang | 3125 | 8710 |
| 32.73.05 | Andir | 32.73.05.1005 | Garuda | 1666 | 4812 |
| 32.73.05 | Andir | 32.73.05.1004 | Kebon Jeruk | 1537 | 3875 |
| 32.73.05 | Andir | 32.73.05.1001 | Maleber | 2948 | 8388 |
| 32.73.20 | Antapani | 32.73.20.1005 | Antapani Kidul | 1683 | 4248 |
| 32.73.20 | Antapani | 32.73.20.1001 | Antapani Kulon | 1127 | 2997 |
| 32.73.20 | Antapani | 32.73.20.1004 | Antapani Tengah | 2065 | 5469 |
| 32.73.20 | Antapani | 32.73.20.1006 | Antapani Wetan | 2101 | 5779 |
| 32.73.24 | Arcamanik | 32.73.24.1002 | Cisaranten Bina Harapan | 2066 | 5883 |
| 32.73.24 | Arcamanik | 32.73.24.1004 | Cisaranten Endah | 2437 | 6967 |
| 32.73.24 | Arcamanik | 32.73.24.1003 | Cisaranten Kulon | 2636 | 7036 |
| 32.73.24 | Arcamanik | 32.73.24.1001 | Sukamiskin | 2001 | 5448 |
| 32.73.10 | Astanaanyar | 32.73.10.1005 | Cibadak | 1709 | 4638 |
| 32.73.10 | Astanaanyar | 32.73.10.1003 | Karang Anyar | 590 | 1439 |
| 32.73.10 | Astanaanyar | 32.73.10.1001 | Karasak | 1730 | 4881 |
| 32.73.10 | Astanaanyar | 32.73.10.1002 | Nyengseret | 2029 | 5694 |
| 32.73.10 | Astanaanyar | 32.73.10.1004 | Panjunan | 1110 | 3185 |
| 32.73.10 | Astanaanyar | 32.73.10.1006 | Pelindung Hewan | 2290 | 6112 |
| 32.73.03 | Babakan Ciparay | 32.73.03.1002 | Babakan | 5430 | 15472 |
| 32.73.03 | Babakan Ciparay | 32.73.03.1001 | Babakan Ciparay | 4798 | 13093 |
| 32.73.03 | Babakan Ciparay | 32.73.03.1006 | Cirangrang | 1864 | 5325 |
| 32.73.03 | Babakan Ciparay | 32.73.03.1004 | Margahayu Utara | 3108 | 8344 |
| 32.73.03 | Babakan Ciparay | 32.73.03.1005 | Margasuka | 2161 | 6036 |
| 32.73.03 | Babakan Ciparay | 32.73.03.1003 | Sukahaji | 5528 | 16123 |
| 32.73.21 | Bandung Kidul | 32.73.21.1001 | Batununggal | 2377 | 6191 |
| 32.73.21 | Bandung Kidul | 32.73.21.1004 | Kujangsari | 2943 | 8271 |
| 32.73.21 | Bandung Kidul | 32.73.21.1003 | Mengger | 1103 | 2859 |
| 32.73.21 | Bandung Kidul | 32.73.21.1002 | Wates | 1397 | 3671 |
| 32.73.15 | Bandung Kulon | 32.73.15.1004 | Caringin | 963 | 2709 |
| 32.73.15 | Bandung Kulon | 32.73.15.1002 | Cibuntu | 2571 | 6644 |
| 32.73.15 | Bandung Kulon | 32.73.15.1005 | Cigondewah Kaler | 3376 | 9610 |
| 32.73.15 | Bandung Kulon | 32.73.15.1008 | Cigondewah Kidul | 1130 | 3096 |
| 32.73.15 | Bandung Kulon | 32.73.15.1007 | Cigondewah Rahayu | 1458 | 3839 |
| 32.73.15 | Bandung Kulon | 32.73.15.1001 | Cijerah | 3677 | 9980 |
| 32.73.15 | Bandung Kulon | 32.73.15.1006 | Gempol Sari | 2147 | 5478 |
| 32.73.15 | Bandung Kulon | 32.73.15.1003 | Warung Muncang | 4060 | 11611 |
| 32.73.09 | Bandung Wetan | 32.73.09.1001 | Cihapit | 106 | 247 |
| 32.73.09 | Bandung Wetan | 32.73.09.1003 | Citarum | 96 | 240 |
| 32.73.09 | Bandung Wetan | 32.73.09.1002 | Taman Sari | 3008 | 7882 |
| 32.73.12 | Batununggal | 32.73.12.1008 | Binong | 2855 | 7675 |
| 32.73.12 | Batununggal | 32.73.12.1003 | Cibangkong | 2510 | 6387 |
| 32.73.12 | Batununggal | 32.73.12.1001 | Gumuruh | 2448 | 6465 |
| 32.73.12 | Batununggal | 32.73.12.1004 | Kacapiring | 1431 | 3789 |
| 32.73.12 | Batununggal | 32.73.12.1006 | Kebon Gedang | 1525 | 3968 |
| 32.73.12 | Batununggal | 32.73.12.1005 | Kebon Waru | 2709 | 7637 |
| 32.73.12 | Batununggal | 32.73.12.1002 | Maleer | 3309 | 8918 |
| 32.73.12 | Batununggal | 32.73.12.1007 | Samoja | 2261 | 6110 |
| 32.73.04 | Bojongloa Kaler | 32.73.04.1004 | Babakan Asih | 2944 | 8421 |
| 32.73.04 | Bojongloa Kaler | 32.73.04.1002 | Babakan Tarogong | 5711 | 17219 |
| 32.73.04 | Bojongloa Kaler | 32.73.04.1003 | Jamika | 5224 | 15274 |
| 32.73.04 | Bojongloa Kaler | 32.73.04.1001 | Kopo | 6170 | 18772 |
| 32.73.04 | Bojongloa Kaler | 32.73.04.1005 | Suka Asih | 3861 | 11852 |
| 32.73.17 | Bojongloa Kidul | 32.73.17.1003 | Cibaduyut | 2062 | 5596 |
| 32.73.17 | Bojongloa Kidul | 32.73.17.1005 | Cibaduyut Kidul | 1535 | 4049 |
| 32.73.17 | Bojongloa Kidul | 32.73.17.1006 | Cibaduyut Wetan | 983 | 2634 |
| 32.73.17 | Bojongloa Kidul | 32.73.17.1002 | Kebon Lega | 2897 | 7529 |
| 32.73.17 | Bojongloa Kidul | 32.73.17.1004 | Mekar Wangi | 1850 | 4676 |
| 32.73.17 | Bojongloa Kidul | 32.73.17.1001 | Situsaeur | 3108 | 8405 |
| 32.73.22 | Buahbatu | 32.73.22.1003 | Cijaura | 3620 | 9936 |
| 32.73.22 | Buahbatu | 32.73.22.1004 | Jati Sari | 748 | 2014 |
| 32.73.22 | Buahbatu | 32.73.22.1002 | Margasari | 4922 | 13451 |
| 32.73.22 | Buahbatu | 32.73.22.1001 | Sekejati | 2157 | 5701 |
| 32.73.18 | Cibeunying Kaler | 32.73.18.1004 | Cigadung | 3765 | 10029 |
| 32.73.18 | Cibeunying Kaler | 32.73.18.1001 | Cihaurgeulis | 1488 | 3941 |
| 32.73.18 | Cibeunying Kaler | 32.73.18.1003 | Neglasari | 1219 | 3109 |
| 32.73.18 | Cibeunying Kaler | 32.73.18.1002 | Sukaluyu | 1489 | 3839 |
| 32.73.14 | Cibeunying Kidul | 32.73.14.1003 | Cicadas | 1950 | 5148 |
| 32.73.14 | Cibeunying Kidul | 32.73.14.1002 | Cikutra | 3916 | 11293 |
| 32.73.14 | Cibeunying Kidul | 32.73.14.1001 | Padasuka | 2609 | 6975 |
| 32.73.14 | Cibeunying Kidul | 32.73.14.1006 | Pasirlayung | 2558 | 6620 |
| 32.73.14 | Cibeunying Kidul | 32.73.14.1004 | Sukamaju | 1481 | 3960 |
| 32.73.14 | Cibeunying Kidul | 32.73.14.1005 | Sukapada | 2757 | 6993 |
| 32.73.25 | Cibiru | 32.73.25.1003 | Cipadung | 3453 | 8904 |
| 32.73.25 | Cibiru | 32.73.25.1001 | Cisurupan | 2740 | 7418 |
| 32.73.25 | Cibiru | 32.73.25.1004 | Palasari | 2678 | 6649 |
| 32.73.25 | Cibiru | 32.73.25.1002 | Pasir Biru | 2304 | 5811 |
| 32.73.06 | Cicendo | 32.73.06.1002 | Arjuna | 1453 | 3695 |
| 32.73.06 | Cicendo | 32.73.06.1001 | Husein Sastranegara | 2618 | 7459 |
| 32.73.06 | Cicendo | 32.73.06.1003 | Pajajaran | 4020 | 11237 |
| 32.73.06 | Cicendo | 32.73.06.1005 | Pamoyanan | 726 | 1803 |
| 32.73.06 | Cicendo | 32.73.06.1004 | Pasirkaliki | 1055 | 2854 |
| 32.73.06 | Cicendo | 32.73.06.1006 | Sukaraja | 2091 | 5244 |
| 32.73.08 | Cidadap | 32.73.08.1002 | Ciumbuleuit | 2901 | 7720 |
| 32.73.08 | Cidadap | 32.73.08.1001 | Hegarmanah | 2337 | 6335 |
| 32.73.08 | Cidadap | 32.73.08.1003 | Ledeng | 1294 | 3099 |
| 32.73.29 | Cinambo | 32.73.29.1004 | Babakan Penghulu | 982 | 2531 |
| 32.73.29 | Cinambo | 32.73.29.1002 | Cisaranten Wetan | 1065 | 2958 |
| 32.73.29 | Cinambo | 32.73.29.1003 | Pakemitan | 672 | 1633 |
| 32.73.29 | Cinambo | 32.73.29.1001 | Sukamulya | 835 | 2305 |
| 32.73.02 | Coblong | 32.73.02.1001 | Cipaganti | 1903 | 4883 |
| 32.73.02 | Coblong | 32.73.02.1004 | Dago | 4893 | 13647 |
| 32.73.02 | Coblong | 32.73.02.1002 | Lebak Gede | 1157 | 2818 |
| 32.73.02 | Coblong | 32.73.02.1006 | Lebak Siliwangi | 620 | 1646 |
| 32.73.02 | Coblong | 32.73.02.1003 | Sadang Serang | 3551 | 9907 |
| 32.73.02 | Coblong | 32.73.02.1005 | Sekeloa | 2729 | 7086 |
| 32.73.27 | Gedebage | 32.73.27.1001 | Cimencrang | 717 | 1831 |
| 32.73.27 | Gedebage | 32.73.27.1002 | Cisaranten Kidul | 2147 | 5237 |
| 32.73.27 | Gedebage | 32.73.27.1003 | Rancabolang | 968 | 2493 |
| 32.73.27 | Gedebage | 32.73.27.1004 | Rancanumpang | 522 | 1410 |
| 32.73.16 | Kiaracondong | 32.73.16.1005 | Babakan Sari | 5635 | 14763 |
| 32.73.16 | Kiaracondong | 32.73.16.1003 | Babakan Surabaya | 3566 | 9558 |
| 32.73.16 | Kiaracondong | 32.73.16.1004 | Cicaheum | 2871 | 7721 |
| 32.73.16 | Kiaracondong | 32.73.16.1002 | Kebon Jayanti | 2154 | 5958 |
| 32.73.16 | Kiaracondong | 32.73.16.1006 | Kebon Kangkung | 1971 | 5086 |
| 32.73.16 | Kiaracondong | 32.73.16.1001 | Sukapura | 4690 | 12713 |
| 32.73.13 | Lengkong | 32.73.13.1003 | Burangrang | 1264 | 3438 |
| 32.73.13 | Lengkong | 32.73.13.1001 | Cijagra | 821 | 2207 |
| 32.73.13 | Lengkong | 32.73.13.1007 | Cikawao | 1584 | 4410 |
| 32.73.13 | Lengkong | 32.73.13.1002 | Lingkar Selatan | 617 | 1452 |
| 32.73.13 | Lengkong | 32.73.13.1006 | Malabar | 925 | 2457 |
| 32.73.13 | Lengkong | 32.73.13.1004 | Paledang | 969 | 2636 |
| 32.73.13 | Lengkong | 32.73.13.1005 | Turangga | 671 | 1760 |
| 32.73.30 | Mandalajati | 32.73.30.1001 | Jatihandap | 3994 | 10766 |
| 32.73.30 | Mandalajati | 32.73.30.1002 | Karang Pamulang | 2582 | 6527 |
| 32.73.30 | Mandalajati | 32.73.30.1003 | Pasir Impun | 2241 | 6054 |
| 32.73.30 | Mandalajati | 32.73.30.1004 | Sindang Jaya | 2011 | 5553 |
| 32.73.28 | Panyileukan | 32.73.28.1004 | Cipadung Kidul | 813 | 2009 |
| 32.73.28 | Panyileukan | 32.73.28.1003 | Cipadung Kulon | 1865 | 4993 |
| 32.73.28 | Panyileukan | 32.73.28.1001 | Cipadung Wetan | 811 | 2270 |
| 32.73.28 | Panyileukan | 32.73.28.1002 | Mekar Mulya | 564 | 1290 |
| 32.73.23 | Rancasari | 32.73.23.1001 | Cipamokolan | 1794 | 4540 |
| 32.73.23 | Rancasari | 32.73.23.1002 | Derwati | 2697 | 7327 |
| 32.73.23 | Rancasari | 32.73.23.1003 | Manjahlega | 1443 | 3832 |
| 32.73.23 | Rancasari | 32.73.23.1004 | Mekar Jaya | 1654 | 4183 |
| 32.73.11 | Regol | 32.73.11.1002 | Ancol | 1071 | 2799 |
| 32.73.11 | Regol | 32.73.11.1004 | Balong Gede | 773 | 1909 |
| 32.73.11 | Regol | 32.73.11.1006 | Ciateul | 640 | 1596 |
| 32.73.11 | Regol | 32.73.11.1001 | Cigereleng | 961 | 2481 |
| 32.73.11 | Regol | 32.73.11.1005 | Ciseureuh | 2213 | 5695 |
| 32.73.11 | Regol | 32.73.11.1007 | Pasirluyu | 2533 | 6613 |
| 32.73.11 | Regol | 32.73.11.1003 | Pungkur | 848 | 2206 |
| 32.73.07 | Sukajadi | 32.73.07.1002 | Cipedes | 4542 | 13111 |
| 32.73.07 | Sukajadi | 32.73.07.1001 | Pasteur | 2256 | 6097 |
| 32.73.07 | Sukajadi | 32.73.07.1005 | Sukabungah | 3473 | 9922 |
| 32.73.07 | Sukajadi | 32.73.07.1004 | Sukagalih | 2785 | 8283 |
| 32.73.07 | Sukajadi | 32.73.07.1003 | Sukawarna | 1578 | 4341 |
| 32.73.01 | Sukasari | 32.73.01.1002 | Gegerkalong | 2179 | 5664 |
| 32.73.01 | Sukasari | 32.73.01.1003 | Isola | 1433 | 3840 |
| 32.73.01 | Sukasari | 32.73.01.1004 | Sarijadi | 2209 | 5723 |
| 32.73.01 | Sukasari | 32.73.01.1001 | Sukarasa | 1638 | 4523 |
| 32.73.19 | Sumur Bandung | 32.73.19.1004 | Babakan Ciamis | 866 | 2236 |
| 32.73.19 | Sumur Bandung | 32.73.19.1001 | Braga | 636 | 1689 |
| 32.73.19 | Sumur Bandung | 32.73.19.1003 | Kebon Pisang | 1227 | 3298 |
| 32.73.19 | Sumur Bandung | 32.73.19.1002 | Merdeka | 436 | 900 |
| 32.73.26 | Ujungberung | 32.73.26.1004 | Cigending | 2518 | 6484 |
| 32.73.26 | Ujungberung | 32.73.26.1007 | Pasanggrahan | 3058 | 7532 |
| 32.73.26 | Ujungberung | 32.73.26.1003 | Pasir Endah | 1942 | 5168 |
| 32.73.26 | Ujungberung | 32.73.26.1006 | Pasirjati | 2805 | 7163 |
| 32.73.26 | Ujungberung | 32.73.26.1005 | Pasir Wangi | 3034 | 8197 |
Dataset 2
kable(df_bantuan)
| Kode.Kecamatan | Kecamatan | Jenis.Bansos | Jumlah.KPM |
|---|---|---|---|
| 32.73.05 | Andir | BPNT | 4427 |
| 32.73.05 | Andir | PKH | 1913 |
| 32.73.05 | Andir | PBI-JK | 17878 |
| 32.73.20 | Antapani | BPNT | 1691 |
| 32.73.20 | Antapani | PKH | 868 |
| 32.73.20 | Antapani | PBI-JK | 7592 |
| 32.73.24 | Arcamanik | BPNT | 2452 |
| 32.73.24 | Arcamanik | PKH | 1205 |
| 32.73.24 | Arcamanik | PBI-JK | 10743 |
| 32.73.10 | Astanaanyar | BPNT | 2188 |
| 32.73.10 | Astanaanyar | PKH | 1093 |
| 32.73.10 | Astanaanyar | PBI-JK | 11928 |
| 32.73.03 | Babakan Ciparay | BPNT | 7416 |
| 32.73.03 | Babakan Ciparay | PKH | 3470 |
| 32.73.03 | Babakan Ciparay | PBI-JK | 31468 |
| 32.73.21 | Bandung Kidul | BPNT | 2190 |
| 32.73.21 | Bandung Kidul | PKH | 1273 |
| 32.73.21 | Bandung Kidul | PBI-JK | 10405 |
| 32.73.15 | Bandung Kulon | BPNT | 5391 |
| 32.73.15 | Bandung Kulon | PKH | 3060 |
| 32.73.15 | Bandung Kulon | PBI-JK | 27678 |
| 32.73.09 | Bandung Wetan | BPNT | 829 |
| 32.73.09 | Bandung Wetan | PKH | 451 |
| 32.73.09 | Bandung Wetan | PBI-JK | 3368 |
| 32.73.12 | Batununggal | BPNT | 4328 |
| 32.73.12 | Batununggal | PKH | 2341 |
| 32.73.12 | Batununggal | PBI-JK | 21677 |
| 32.73.04 | Bojongloa Kaler | BPNT | 8475 |
| 32.73.04 | Bojongloa Kaler | PKH | 3671 |
| 32.73.04 | Bojongloa Kaler | PBI-JK | 34688 |
| 32.73.17 | Bojongloa Kidul | BPNT | 3856 |
| 32.73.17 | Bojongloa Kidul | PKH | 2065 |
| 32.73.17 | Bojongloa Kidul | PBI-JK | 18011 |
| 32.73.22 | Buahbatu | BPNT | 3012 |
| 32.73.22 | Buahbatu | PKH | 1385 |
| 32.73.22 | Buahbatu | PBI-JK | 13937 |
| 32.73.18 | Cibeunying Kaler | BPNT | 1859 |
| 32.73.18 | Cibeunying Kaler | PKH | 959 |
| 32.73.18 | Cibeunying Kaler | PBI-JK | 7911 |
| 32.73.14 | Cibeunying Kidul | BPNT | 3573 |
| 32.73.14 | Cibeunying Kidul | PKH | 1943 |
| 32.73.14 | Cibeunying Kidul | PBI-JK | 15364 |
| 32.73.25 | Cibiru | BPNT | 2784 |
| 32.73.25 | Cibiru | PKH | 1648 |
| 32.73.25 | Cibiru | PBI-JK | 12331 |
| 32.73.06 | Cicendo | BPNT | 3539 |
| 32.73.06 | Cicendo | PKH | 1452 |
| 32.73.06 | Cicendo | PBI-JK | 12684 |
| 32.73.08 | Cidadap | BPNT | 2126 |
| 32.73.08 | Cidadap | PKH | 880 |
| 32.73.08 | Cidadap | PBI-JK | 6827 |
| 32.73.29 | Cinambo | BPNT | 1227 |
| 32.73.29 | Cinambo | PKH | 622 |
| 32.73.29 | Cinambo | PBI-JK | 4170 |
| 32.73.02 | Coblong | BPNT | 4061 |
| 32.73.02 | Coblong | PKH | 1799 |
| 32.73.02 | Coblong | PBI-JK | 16713 |
| 32.73.27 | Gedebage | BPNT | 1216 |
| 32.73.27 | Gedebage | PKH | 670 |
| 32.73.27 | Gedebage | PBI-JK | 4526 |
| 32.73.16 | Kiaracondong | BPNT | 5119 |
| 32.73.16 | Kiaracondong | PKH | 2391 |
| 32.73.16 | Kiaracondong | PBI-JK | 23076 |
| 32.73.13 | Lengkong | BPNT | 1735 |
| 32.73.13 | Lengkong | PKH | 749 |
| 32.73.13 | Lengkong | PBI-JK | 8209 |
| 32.73.30 | Mandalajati | BPNT | 2590 |
| 32.73.30 | Mandalajati | PKH | 1279 |
| 32.73.30 | Mandalajati | PBI-JK | 11906 |
| 32.73.28 | Panyileukan | BPNT | 1098 |
| 32.73.28 | Panyileukan | PKH | 493 |
| 32.73.28 | Panyileukan | PBI-JK | 4384 |
| 32.73.23 | Rancasari | BPNT | 1903 |
| 32.73.23 | Rancasari | PKH | 1036 |
| 32.73.23 | Rancasari | PBI-JK | 8389 |
| 32.73.11 | Regol | BPNT | 2504 |
| 32.73.11 | Regol | PKH | 1244 |
| 32.73.11 | Regol | PBI-JK | 11546 |
| 32.73.07 | Sukajadi | BPNT | 5079 |
| 32.73.07 | Sukajadi | PKH | 2258 |
| 32.73.07 | Sukajadi | PBI-JK | 20262 |
| 32.73.01 | Sukasari | BPNT | 2229 |
| 32.73.01 | Sukasari | PKH | 861 |
| 32.73.01 | Sukasari | PBI-JK | 8647 |
| 32.73.19 | Sumur Bandung | BPNT | 993 |
| 32.73.19 | Sumur Bandung | PKH | 372 |
| 32.73.19 | Sumur Bandung | PBI-JK | 3671 |
| 32.73.26 | Ujungberung | BPNT | 3202 |
| 32.73.26 | Ujungberung | PKH | 2096 |
| 32.73.26 | Ujungberung | PBI-JK | 16438 |
==================================================================================================================
# Fungsi mengecek kualitas data
check_data_quality <- function(df, df_name) {
results <- data.frame(
Test = c("Missing Values", "Duplicate Rows", "Incorrect Data Formats"),
Result = c(0, 0, 0)
)
# Chek missing values
missing_values <- sum(is.na(df))
results$Result[1] <- ifelse(missing_values > 0, 1, 0)
# Chek data yang duplikat
duplicate_rows <- nrow(df[duplicated(df), ])
results$Result[2] <- ifelse(duplicate_rows > 0, 1, 0)
# Chek untuk formats data yang salah
num_cols <- sapply(df, is.numeric)
incorrect_formats <- FALSE
for (col in names(df)[num_cols]) {
if (any(!grepl("^-?\\d+(\\.\\d+)?$", as.character(df[[col]])), na.rm = TRUE)) {
incorrect_formats <- TRUE
break
}
}
results$Result[3] <- ifelse(incorrect_formats, 1, 0)
# Buat data frame untuk hasil
# Yes --> ada kesalahan bentuk data
# None --> data bersih
result_df <- data.frame(
Test = results$Test,
Result = ifelse(results$Result == 1, "Yes", "None")
)
return(kable(result_df))
}
check_data_quality(df_bantuan, "df_sebaran")
| Test | Result |
|---|---|
| Missing Values | None |
| Duplicate Rows | None |
| Incorrect Data Formats | None |
check_data_quality(df_sebaran, "df_bantuan")
| Test | Result |
|---|---|
| Missing Values | None |
| Duplicate Rows | None |
| Incorrect Data Formats | None |
kable(head(df_bantuan_after))
| Kecamatan | Jenis.Bansos | Jumlah.KPM |
|---|---|---|
| Andir | BPNT | 4427 |
| Andir | PKH | 1913 |
| Andir | PBI-JK | 17878 |
| Antapani | BPNT | 1691 |
| Antapani | PKH | 868 |
| Antapani | PBI-JK | 7592 |
kable(head(df_sebaran_after))
| Kecamatan | Kelurahan | Jumlah.Keluarga.Miskin | Jumlah.Individu |
|---|---|---|---|
| Andir | Campaka | 2553 | 7328 |
| Andir | Ciroyom | 3443 | 10205 |
| Andir | Dungus Cariang | 3125 | 8710 |
| Andir | Garuda | 1666 | 4812 |
| Andir | Kebon Jeruk | 1537 | 3875 |
| Andir | Maleber | 2948 | 8388 |
# Mengelompokkan berdasarkan Kecamatan dan menghitung jumlah keluarga miskin dan jumlah individu untuk setiap kecamatan hanya untuk kolom numerik
df_sebaran_baru <- df_sebaran_after %>%
group_by(Kecamatan) %>%
summarise(across(where(is.numeric), sum, na.rm = TRUE))
df_sebaran_baru <- df_sebaran_baru %>%
arrange(Jumlah.Keluarga.Miskin)
kable(head(df_sebaran_baru))
| Kecamatan | Jumlah.Keluarga.Miskin | Jumlah.Individu |
|---|---|---|
| Sumur Bandung | 3165 | 8123 |
| Bandung Wetan | 3210 | 8369 |
| Cinambo | 3554 | 9427 |
| Panyileukan | 4053 | 10562 |
| Gedebage | 4354 | 10971 |
| Cidadap | 6532 | 17154 |
# Membuat dataframe baru
# pivot table untuk menghitung jumlah KPM berdasarkan jenis-jenis bansos yang tersedia untuk setiap kecamatan
df_bantuan_baru <- aggregate(Jumlah.KPM ~ Kecamatan + `Jenis.Bansos`, data = df_bantuan_after, sum)
# Membuat pivot table menggunakan spread
df_bantuan_baru <- spread(df_bantuan_baru, key = `Jenis.Bansos`, value = Jumlah.KPM, fill = 0)
# Menambahkan kolom Total KPM
df_bantuan_baru$Total.KPM <- rowSums(df_bantuan_baru[, -1])
kable(head(df_bantuan_baru))
| Kecamatan | BPNT | PBI-JK | PKH | Total.KPM |
|---|---|---|---|---|
| Andir | 4427 | 17878 | 1913 | 24218 |
| Antapani | 1691 | 7592 | 868 | 10151 |
| Arcamanik | 2452 | 10743 | 1205 | 14400 |
| Astanaanyar | 2188 | 11928 | 1093 | 15209 |
| Babakan Ciparay | 7416 | 31468 | 3470 | 42354 |
| Bandung Kidul | 2190 | 10405 | 1273 | 13868 |
# Menggabungkan kedua data frame secara union
df_merged <- merge(df_sebaran_baru, df_bantuan_baru, by = "Kecamatan")
kable(df_merged)
| Kecamatan | Jumlah.Keluarga.Miskin | Jumlah.Individu | BPNT | PBI-JK | PKH | Total.KPM |
|---|---|---|---|---|---|---|
| Andir | 15272 | 43318 | 4427 | 17878 | 1913 | 24218 |
| Antapani | 6976 | 18493 | 1691 | 7592 | 868 | 10151 |
| Arcamanik | 9140 | 25334 | 2452 | 10743 | 1205 | 14400 |
| Astanaanyar | 9458 | 25949 | 2188 | 11928 | 1093 | 15209 |
| Babakan Ciparay | 22889 | 64393 | 7416 | 31468 | 3470 | 42354 |
| Bandung Kidul | 7820 | 20992 | 2190 | 10405 | 1273 | 13868 |
| Bandung Kulon | 19382 | 52967 | 5391 | 27678 | 3060 | 36129 |
| Bandung Wetan | 3210 | 8369 | 829 | 3368 | 451 | 4648 |
| Batununggal | 19048 | 50949 | 4328 | 21677 | 2341 | 28346 |
| Bojongloa Kaler | 23910 | 71538 | 8475 | 34688 | 3671 | 46834 |
| Bojongloa Kidul | 12435 | 32889 | 3856 | 18011 | 2065 | 23932 |
| Buahbatu | 11447 | 31102 | 3012 | 13937 | 1385 | 18334 |
| Cibeunying Kaler | 7961 | 20918 | 1859 | 7911 | 959 | 10729 |
| Cibeunying Kidul | 15271 | 40989 | 3573 | 15364 | 1943 | 20880 |
| Cibiru | 11175 | 28782 | 2784 | 12331 | 1648 | 16763 |
| Cicendo | 11963 | 32292 | 3539 | 12684 | 1452 | 17675 |
| Cidadap | 6532 | 17154 | 2126 | 6827 | 880 | 9833 |
| Cinambo | 3554 | 9427 | 1227 | 4170 | 622 | 6019 |
| Coblong | 14853 | 39987 | 4061 | 16713 | 1799 | 22573 |
| Gedebage | 4354 | 10971 | 1216 | 4526 | 670 | 6412 |
| Kiaracondong | 20887 | 55799 | 5119 | 23076 | 2391 | 30586 |
| Lengkong | 6851 | 18360 | 1735 | 8209 | 749 | 10693 |
| Mandalajati | 10828 | 28900 | 2590 | 11906 | 1279 | 15775 |
| Panyileukan | 4053 | 10562 | 1098 | 4384 | 493 | 5975 |
| Rancasari | 7588 | 19882 | 1903 | 8389 | 1036 | 11328 |
| Regol | 9039 | 23299 | 2504 | 11546 | 1244 | 15294 |
| Sukajadi | 14634 | 41754 | 5079 | 20262 | 2258 | 27599 |
| Sukasari | 7459 | 19750 | 2229 | 8647 | 861 | 11737 |
| Sumur Bandung | 3165 | 8123 | 993 | 3671 | 372 | 5036 |
| Ujungberung | 13357 | 34544 | 3202 | 16438 | 2096 | 21736 |
==================================================================================================================
# eksplor/analisis berdasar data yang sudah di process sebelumnya
library(psych)
kable(describe(df_merged))
| vars | n | mean | sd | median | trimmed | mad | min | max | range | skew | kurtosis | se | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Kecamatan* | 1 | 30 | 15.500 | 8.803408 | 15.5 | 15.500 | 11.1195 | 1 | 30 | 29 | 0.0000000 | -1.3204946 | 1.607275 |
| Jumlah.Keluarga.Miskin | 2 | 30 | 11150.367 | 5842.736614 | 10143.0 | 10704.000 | 5117.1939 | 3165 | 23910 | 20745 | 0.5610459 | -0.6642021 | 1066.732880 |
| Jumlah.Individu | 3 | 30 | 30259.533 | 16722.000865 | 27365.5 | 28755.708 | 14245.5621 | 8123 | 71538 | 63415 | 0.6996126 | -0.3303113 | 3053.005694 |
| BPNT | 4 | 30 | 3103.067 | 1837.768154 | 2547.0 | 2870.417 | 1495.9434 | 829 | 8475 | 7646 | 1.1461944 | 0.9378230 | 335.529024 |
| PBI-JK | 5 | 30 | 13547.567 | 8105.944722 | 11917.0 | 12557.667 | 6906.6921 | 3368 | 34688 | 31320 | 0.9038297 | 0.1390350 | 1479.936258 |
| PKH | 6 | 30 | 1518.233 | 866.839431 | 1276.0 | 1417.917 | 839.8929 | 372 | 3671 | 3299 | 0.8378667 | -0.0705082 | 158.262503 |
| Total.KPM | 7 | 30 | 18168.867 | 10773.282885 | 15534.5 | 16837.083 | 8823.6939 | 4648 | 46834 | 42186 | 0.9379980 | 0.2483873 | 1966.923352 |
The above statistical description is useful for understanding the data count, mean, median, minimum and maximum values, and also includes information about data skewness.
# Menghitung jumlah baris dan kolom untuk df_merged
n1 = nrow(df_merged)
nn1 = ncol(df_merged)
# Mencetak jumlah baris dan kolom
cat("Jumlah Baris x Kolom\n")
## Jumlah Baris x Kolom
cat( n1, " x ", nn1, "\n")
## 30 x 7
# Menghitung jumlah kecamatan yang ada
jumlah_kecamatan <- length(unique(df_merged$Kecamatan))
cat("Jumlah kecamatan:", jumlah_kecamatan, "\n")
## Jumlah kecamatan: 30
# menampilkan daftar kecamatan
daftar_kecamatan <- unique(df_merged$Kecamatan)
cat("Daftar kecamatan:\n")
## Daftar kecamatan:
print(daftar_kecamatan)
## [1] "Andir" "Antapani" "Arcamanik" "Astanaanyar"
## [5] "Babakan Ciparay" "Bandung Kidul" "Bandung Kulon" "Bandung Wetan"
## [9] "Batununggal" "Bojongloa Kaler" "Bojongloa Kidul" "Buahbatu"
## [13] "Cibeunying Kaler" "Cibeunying Kidul" "Cibiru" "Cicendo"
## [17] "Cidadap" "Cinambo" "Coblong" "Gedebage"
## [21] "Kiaracondong" "Lengkong" "Mandalajati" "Panyileukan"
## [25] "Rancasari" "Regol" "Sukajadi" "Sukasari"
## [29] "Sumur Bandung" "Ujungberung"
# #jenis-jenis bansos yang diterima KPM
jenis_bansos <- unique(df_bantuan$`Jenis.Bansos`)
# print
cat("Jenis-jenis Bansos yang Tersedia:\n")
## Jenis-jenis Bansos yang Tersedia:
for (bansos in jenis_bansos) {
cat(bansos, "\n")
}
## BPNT
## PKH
## PBI-JK
# Menghitung total jumlah keluarga miskin
total_keluarga_miskin <- sum(df_merged$Jumlah.Keluarga.Miskin, na.rm = TRUE)
cat("Jumlah seluruh keluarga miskin:", total_keluarga_miskin)
## Jumlah seluruh keluarga miskin: 334511
# Menghitung total bantuan yang diberikan di kota bandung
total_Bantuan <- sum(df_merged$Total.KPM, na.rm = TRUE)
cat("Jumlah bantuan yang diberikan di kota bandung:", total_Bantuan)
## Jumlah bantuan yang diberikan di kota bandung: 545066
Data visualizations kami membuat 6 visualisasi barplot :
library(plotly)
# Sorting dataframe berdasarkan 'Jumlah Keluarga Miskin' secara descending
df_merged_sorted <- arrange(df_merged, desc(`Jumlah.Keluarga.Miskin`))
# Plot
p1 <- plot_ly(df_merged_sorted, x = ~reorder(Kecamatan, Jumlah.Keluarga.Miskin),
y = ~Jumlah.Keluarga.Miskin, type = 'bar', marker = list(color = ~Jumlah.Keluarga.Miskin, colorscale = 'Reds')) %>%
layout(title = 'Jumlah Kemiskinan berdasarkan setiap Kecamatan',
xaxis = list(title = 'Kecamatan (district)', tickangle = -90),
yaxis = list(title = 'Jumlah Keluarga Miskin'))
p1
- This bar plot visualization displays the number of poor families in each district to help identify districts with the highest poverty levels, which can prioritize government interventions in distributing aid.
- Among all the districts in the data, it is noted that Bojongloa Kaler district has the highest poverty rate (calculated per family), while Sumur Bandung district has the lowest poverty rate.
- The colors in the bar plot also indicate the severity of poverty levels; darker colors represent higher numbers of poverty.
- There is a significant disparity across Bandung city, as some districts differ greatly in the number of poor families. For example, Sumur Bandung district has 3,165 poor families, whereas Bojongloa Kaler district has the highest with 23,910 poor families. This difference of 20,745 families between these two districts highlights substantial socioeconomic disparities and variations across Bandung city.
# Library tambahan
library(tidyr)
library(patchwork)
# Scatter plot untuk BPNT vs Jumlah Keluarga Miskin
plot1 <- ggplot(df_merged, aes(x = Jumlah.Keluarga.Miskin, y = BPNT)) +
geom_point(color = "blue") +
labs(title = "BPNT vs Jumlah Keluarga Miskin",
x = "Jumlah Keluarga Miskin",
y = "Jumlah Penerima BPNT") +
theme_minimal()
# Scatter plot untuk PKH vs Jumlah Keluarga Miskin
plot2 <- ggplot(df_merged, aes(x = Jumlah.Keluarga.Miskin, y = PKH)) +
geom_point(color = "green") +
labs(title = "PKH vs Jumlah Keluarga Miskin",
x = "Jumlah Keluarga Miskin",
y = "Jumlah Penerima PKH") +
theme_minimal()
# Scatter plot untuk PBI-JK vs Jumlah Keluarga Miskin
plot3 <- ggplot(df_merged, aes(x = Jumlah.Keluarga.Miskin, y = `PBI-JK`)) +
geom_point(color = "orange") +
labs(title = "PBI-JK vs Jumlah Keluarga Miskin",
x = "Jumlah Keluarga Miskin",
y = "Jumlah Penerima PBI-JK") +
theme_minimal()
# Menampilkan plot dalam satu tampilan menggunakan patchwork
(plot1 / plot2 / plot3 ) + plot_layout(ncol = 2)
- X-axis = Number of Poor Families
- Y-axis = Number of Assistance (BPNT, PBI-JK, PKH)
- Blue dots represent the number of BPNT assistance received
- Green dots represent the number of PKH assistance received
- Orange dots represent the number of PBI-JK assistance received
From the scatter plot above, it clearly shows a strong positive correlation pattern, where the amount of assistance increases for districts (kecamatan) with higher levels of poverty.
# model linear
model <- lm(Total.Bantuan ~ Jumlah.Keluarga.Miskin, data = df_merged_baru)
df_merged_baru$fit <- predict(model)
# Scatter plot dengan garis linear
p2 <- plot_ly(df_merged_baru, x = ~Jumlah.Keluarga.Miskin, y = ~Total.Bantuan, type = 'scatter', mode = 'markers',
marker = list(color = 'blue'), text = ~Kecamatan, hoverinfo = 'text') %>%
add_trace(x = ~Jumlah.Keluarga.Miskin, y = ~fit, type = 'scatter', mode = 'lines', line = list(color = 'red')) %>%
layout(title = 'Scatter Plot: Korelasi Jumlah Keluarga Miskin dengan Total bantuan yang diberikan',
xaxis = list(title = 'Jumlah Keluarga Miskin'),
yaxis = list(title = 'Jumlah Total Bantuan'))
p2
==================================================================================================================
correlation <- cor(df_merged %>% select(Jumlah.Keluarga.Miskin, BPNT, PKH, `PBI-JK`, Total.KPM), use = "complete.obs")
kable(correlation)
| Jumlah.Keluarga.Miskin | BPNT | PKH | PBI-JK | Total.KPM | |
|---|---|---|---|---|---|
| Jumlah.Keluarga.Miskin | 1.0000000 | 0.9567950 | 0.9677741 | 0.9752840 | 0.9748997 |
| BPNT | 0.9567950 | 1.0000000 | 0.9712680 | 0.9810561 | 0.9868940 |
| PKH | 0.9677741 | 0.9712680 | 1.0000000 | 0.9894354 | 0.9906092 |
| PBI-JK | 0.9752840 | 0.9810561 | 0.9894354 | 1.0000000 | 0.9993778 |
| Total.KPM | 0.9748997 | 0.9868940 | 0.9906092 | 0.9993778 | 1.0000000 |
==================================================================================================================
The results of this statistical analysis indicate that social assistance programs in Bandung City can be considered effective in targeting districts that are most in need. The strong correlation between the number of poor families and the amount of assistance suggests that aid is allocated proportionally based on poverty levels in each district. Additionally, the strong correlations between the number of poor families and each type of assistance indicate that all types of assistance (PKH, BPNT, PBI-JK) contribute effectively to targeting poor families.
These findings align with the positive linear relationship observed in the scatter plot we created earlier, showing that there is a direct relationship between the number of poor families per district and the amount of assistance provided.
From our analysis results, it is evident that the Bandung government is implementing data-driven policies. They utilize poverty distribution maps at the district level to tailor the allocation of assistance to each district accordingly. This approach ensures that resources are directed where they are most needed, reflecting a strategic and informed approach to social assistance distribution.
However, this analysis only measures the linear relationship between the variables of social assistance and the distribution of poor families across districts. Other factors outside the scope of the available dataset, such as community participation rates, service quality, and the impact of assistance on family well-being, were not considered in this analysis.
==================================================================================================================
In conclusion, the analysis of social assistance distribution in Bandung City reveals that these programs are not only well-targeted but also effective in reaching the most impoverished areas. This alignment with the Sustainable Development Goal of No Poverty underscores the city government’s commitment to addressing socio-economic disparities. Moving forward, continuous monitoring and evaluation will be crucial to ensure these efforts remain responsive to evolving community needs and contribute effectively to long-term poverty alleviation strategies.
==================================================================================================================
==================================================================================================================